Differentiating between two “things” of a similar nature is a problem frequently addressed in the area of computer science. In fact, many programmers take it for granted that a differentiation utility exists in their particular area. For example, the UNIX operating system includes a “diff” function that shows, line by line, the differences between two files. Microsoft Word includes a “Reviewing” taskbar that shows changes between and among versions of a document. In fact, many operating systems, word processors, operating environments include a procedure, function, facility, etc. that determines the differences between two items.
In more modern, object-oriented software areas, however, this differentiation utility is not always a part of the system. For example, JAVA, a programming language and operating system developed by Sun Microsystems, only provides a way of comparing the equality of two objects of the same Class. There is no universally defined method to determine the differences between two objects.
Therefore, a problem exists in the current object-oriented software art to differentiate between two objects of the same Class, especially in JAVA.